﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sistema_Totem.Presentacion.Presentador.Propuestas;
using Sistema_Totem.Presentacion.Contrato.Propuestas;
using AjaxControlToolkit;
using System.Web.SessionState;
using Sistema_Totem.Clases;

namespace Sistema_Totem.Presentacion.Vista.Propuestas
{
    public partial class AgregarPropuesta : System.Web.UI.Page, IContratoAgregarPropuesta
    {
        private PresentadorAgregarPropuesta _presentador;

        /// <summary>
        /// Constructor
        /// </summary>
        public AgregarPropuesta()
        {
            _presentador = new PresentadorAgregarPropuesta(this);
        }

        /// <summary>
        /// Page Load de la pagina AgregarPropuesta, verifica si el proyecto tiene una propuesta
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Sesion["usuario"] == null || Sesion["proyecto"] == null || (Sesion["usuario"] as Usuario).TipoUsuario == "Administrador")
                Response.Redirect("../Login/login.aspx");
            else
            _presentador.ValidarExistenciaPropuesta(((List<string>)Session["listaSeccionesPropuesta"]));
        }

        #region Implementacion Contrato

        /// <summary>
        /// Get del label informativo
        /// </summary>
        public Label etiquetaMensajeInformativo
        {
            get { return LabelMensajeInformativo; }
        }

        /// <summary>
        /// Get y set del acordion
        /// </summary>
        public Accordion acordeonAgregar
        {
            get { return AccordionAgregarPropuesta; }
            set { AccordionAgregarPropuesta = value; }
        }

        /// <summary>
        /// Get del boton aceptar
        /// </summary>
        public Button botonAceptar
        {
            get { return ButtonAgregar; }
        }

        /// <summary>
        /// Get del boton cancelar
        /// </summary>
        public Button botonCancelar
        {
            get { return ButtonCancelar; }
        }

        /// <summary>
        /// Get de la variable sesion
        /// </summary>
        public HttpSessionState Sesion
        {
            get { return Session; }
        }

        #endregion Implementacion Contrato

        /// <summary>
        /// Metodo que se dispara al presionar el boton Aceptar y envia al presentador
        /// el acordion para generar el xml
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ButtonAgregar_Click(object sender, EventArgs e)
        {
            _presentador.GenerarXmlPropuesta(AccordionAgregarPropuesta);
        }

        /// <summary>
        /// Metodo que se dispara al presionar el boton Cancelar, redirecciona a pagina principal 
        /// del proyecto
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ButtonCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("../Proyectos/ConsultarProyecto.aspx");
        }

    }
}